package com.ruoyi.business.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

@Data
public class DeliveryVo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 出库单号 */
    @Excel(name = "出库单号")
    private String deliveryNo;

    /** 批次号 */
    @Excel(name = "批次号")
    private String lotNo;

    /** 编码 */
    @Excel(name = "编码")
    private String cargoSn;

    /** 名称 */
    @Excel(name = "名称")
    private String cargoName;

    /** 单位 */
    @Excel(name = "单位")
    private String cargoUnit;

    /** 规格 */
    @Excel(name = "规格")
    private String cargoSpec;

    /** 类型：1良品，2不良品 */
    @Excel(name = "类型：1良品，2不良品")
    private Long type;

    /** 出库数量 */
    @Excel(name = "出库数量")
    private Long num;

    /** 工厂名称 */
    @Excel(name = "工厂名称")
    private String factoryName;

    /** 仓库名称 */
    @Excel(name = "仓库名称")
    private String storeName;

    /** 库区名称 */
    @Excel(name = "库区名称")
    private String regionName;

    /** 库位编码 */
    @Excel(name = "库位编码")
    private String locationSn;

    /** 托盘编码 */
    @Excel(name = "托盘编码")
    private String traySn;

    /** 供应商 */
    @Excel(name = "供应商")
    private String supplierSn;

    /** 客户 */
    @Excel(name = "客户")
    private String customersName;

    /** 工厂id */
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private Long factoryId;

    /** 仓库id */
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private Long storeId;

    /** 有效期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "有效期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date validityDate;

    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private String beginTime;

    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private String endTime;

    @JsonIgnore
    private String updateBy;

    @JsonIgnore
    private Date updateTime;

    @JsonIgnore
    private String remark;
}
